#include <QCoreApplication>

#include <boost/asio.hpp>         // 包含boost库函数
#include <boost/bind.hpp>
using namespace boost::asio;


int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);


    io_service io;
    serial_port sp(io, "/dev/ttyUSB0");         // 定义传输的串口
    sp.set_option(serial_port::baud_rate(115200));                                  // 波特率
    sp.set_option(  serial_port::flow_control( serial_port::flow_control::none ) ); // 流量控制
    sp.set_option(  serial_port::parity( serial_port::parity::none ) );             // 奇偶校验
    sp.set_option( serial_port::stop_bits(  serial_port::stop_bits::one ) );        // 停止位
    sp.set_option(  serial_port::character_size( 8 ) );                             // 数据位

    while(1)
    {
        // Step 3 and Step 4 are optional, only if you want to use the request-response communication pattern
        // Step 3: Request quaternion Data from TransdcuerM
//        uint16 toId = 309; // Node ID
//        char*  txData;
//        int    txSize;
//        if(EP_SUCC_ == EasyProfile_C_Interface_TX_Request(toId, EP_CMD_Q_S1_E_, &txData, &txSize))
//        {
//            write(sp, buffer(txData, txSize));    // Step 4:  Send the request via Serial Port.
//        }

        char rxData[100];
        boost::system::error_code err;

        sp.read_some(buffer(rxData, 50),err);  // Read from serial port buffer
        if (err)
        {
            printf("Serial port read_some Error!");
            return -1;
        }
        else
        {
            printf("Serial port read_some sucess!");
            for(int i=0;i<33;i++)
            {
               printf("%02x",rxData[i]);
            }
        }


    }

    return a.exec();
}
